In the field of this invention it is known that enhanced function storage systems (e.g., for a system of one or more disk drives) contain many logical resources. These resources can be managed by a storage adapter or controller. In this context, a logical resource is an entity which exposes a disk-like behaviour but which may have properties not ordinarily associated with individual disk drives. These properties include enhanced performance, reliability, availability and data transformation operations such as point in time copy. There may be a complex many-to-many relationship between logical resources and other logical resources or physical resources. For example a RAID-5 (Redundant Array of Independent Disks) arrangement contains usually between 4 and 16 component disks. Data is striped across the components and a parity check is calculated and stored. The attributes of, and relationships between, these logical resources must be gathered and manipulated to allow users to maintain their subsystem. When such subsystems are further clustered together and used in storage networks, the difficulties and resource costs of controlling the system's logical resource configuration are yet further compounded.
There is thus a need to permit distribution of system configuration control tasks among the adapters or controllers in the storage network. A distributed administration task can by its very nature be requested from any supported client. This makes it possible for two users to attempt to perform conflicting actions from different locations resulting in unpredictable results. In the case of RAID subsystems, for example, it is possible for two users to attempt to configure the same disk drives or resources. Even without remote access, when a subsystem is configured in cluster mode it can be accessed from multiple local hosts and the same problem could be encountered.
The logical resource objects maintained by the adapters possess multiple filter layers in a stack. The configuration component associates each filter resource with a resource object instance. When resource objects are created the filter layers must be added, one on top of the other, by the configuration component. During this process the cluster must be stable and it is important to ensure that no other configuration tasks are being performed simultaneously. There is scope for erroneous user interaction between each of these steps that can result in unusable or half-built resource objects.
The size of storage installations is increasing, and relying on a single point of control to configure the resources in the network is becoming unreasonably burdensome and unworkable. However, because of the complexity of configuration of logical and physical resources, conventional methods of controlling distributed systems management wholly within the configuration software layer cannot be used to prevent conflicts, for example, by enforcing serialization of access to the configuration utility program. At the same time, use of adapter-level resources must be restricted wherever possible to the satisfaction of “real” work requests for input/output operations. It is well-known to those skilled in the art that such adapters or controllers must be designed to be as economical in their overhead resource use as possible.
It would thus be desirable to provide a low-overhead system and method for distributed storage configuration control in a storage network to alleviate these problems.